Methods and Systems for Performing Proximity-Based Targeting of Advertisements to Internet-Connectable Devices and Utilizing Predicted Locations of Internet-Connectable Devices Using Data Networks

ABSTRACT

Computer systems and methods for performing proximity-based targeting of advertisements to Internet-connectable devices and utilizing predicted locations of Internet-connectable devices using data networks are provided. In some embodiments, the computer systems and methods comprise receiving from an Internet-connectable device at least one location event captured by the Internet-connectable device; determining a latest location of the Internet-connectable device based on the at least one location event; determining a proximity of the Internet-connectable device to a campaign location based on the latest location of the Internet-connectable device; and transmitting an advertisement to the Internet-connectable device based on the proximity of the Internet-connectable device to the campaign location.

RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No.61/531,890 (Attorney Docket No. 11747.6001), filed Sep. 7, 2011, andU.S. Provisional Application No. 61/570,385 (Attorney Docket No.11747.6002), filed Dec. 14, 2011, both of which are hereby incorporatedby reference herein.

This application also hereby incorporates by reference herein U.S.Non-Provisional patent application Ser. No. ______ (Attorney Docket No.11747.0005), entitled METHODS AND SYSTEMS FOR PROVIDING MOBILEADVERTISING USING DATA NETWORKS BASED ON INTELLIGENCE DATA ASSOCIATEDWITH INTERNET-CONNECTABLE DEVICES, U.S. Non-Provisional patentapplication Ser. No. ______ (Attorney Docket No. 11747.0006), entitledMETHODS AND SYSTEMS FOR PROVIDING MOBILE ADVERTISING USING DATA NETWORKSBASED ON INTELLIGENCE DATA ASSOCIATED WITH INTERNET-CONNECTABLE DEVICESDERIVED USING GRAPH DATA MODELS, U.S. Non-Provisional patent applicationSer. No. ______ (Attorney Docket No. 11747.0007), entitled METHODS ANDSYSTEMS FOR CAPTURING AND TRANSMITTING LOCATIONS EVENTS DATA USING DATANETWORKS, U.S. Non-Provisional patent application Ser. No. ______(Attorney Docket No. 11747.0008), entitled METHODS AND SYSTEMS FORPROVIDING MOBILE ADVERTISING USING DATA NETWORKS BASED ON GROUPINGSASSOCIATED WITH INTERNET-CONNECTABLE DEVICES, all filed concurrentlyherewith.

TECHNICAL FIELD

The systems and techniques described herein relate generally to methodsand systems for performing proximity-based targeting of advertisementsto Internet-connectable devices and utilizing predicted locations ofInternet-connectable devices using data networks.

BACKGROUND

Internet-connectable devices are ubiquitous in today's society. This isevidenced by the widespread use of personal electronic user devices,such as smartphones. In part, this is due to advancements in mobilenetwork infrastructure, service offerings from multiple mobile networkoperators that give greater value to subscribers, reduced devicemanufacturing costs, and the fact that today's mobile devices can servemany functions beyond voice communication. For example, certain mobiledevices may function as a mobile phone, a video camera, a portable mediaplayer, a Global Positioning System (GPS) device, and/or an internetclient with email and web browsing capabilities. Certain mobile devicesmay also provide proprietary and/or third-party software applicationsthat offer various capabilities including, for example, games and socialnetworking. Such devices may also be used to conduct transactions suchas, for example, commercial transactions. Other internet-connectabledevices may provide the same or similar functions and capabilities dueto similar advancements and offerings.

Advertisers have responded to the influx of powerful and intelligentInternet-connected devices by increasingly marketing products andservices via mobile advertising. Mobile advertising is a rapidly growingsector providing advertisers with the opportunity to connect withpotential consumers via consumers' Internet-connectable devices, ratherthan, or in addition to, traditional media such as radio or television.Mobile advertising includes many channels through which consumers can bereached. These channels include, but are not limited to, web-browserclients, Short Message Service (SMS), Multimedia Messaging Service(MMS), games, videos, and software applications. Each mobileadvertisement can link to additional content, channels, softwareapplications or, in some instances, complementing media.Internet-connectable devices are ideal for targeted advertisements dueto the fact that an Internet-connectable device is often associated withonly one unique user. Moreover, many Internet-connectable devices giveusers the ability to be highly engaged with the content availablethereon, including advertisements. Therefore, Internet-connectabledevices can help deliver excellent advertisement campaign effectivenessand response levels compared to other media; however, to be mosteffective, advertisements must be relevant to the user of theInternet-connectable device. For example, people without children areunlikely to be interested in advertisements for diapers. Thus, toprovide relevant advertisements, advertisers may require someinformation about the user to help identify unique interests andattributes of the user.

Typically, to determine a relevant advertisement for a user of anInternet-connectable device, device-specific data can be communicatedfrom the Internet-connectable device to a publisher server in the formof, for example, metadata. This, in turn, may be passed on to anadvertising server or other server for advertisement analysis anddecision-making. In addition to the device-specific parameters, apublisher server may store additional information useful in determininga relevant advertisement for a user including, for example, profiledata, which may comprise anonymous unique user attributes such asgender, location, age, other demographic characteristics, useraffinities, interests, user and/or device history and characteristics,purchase intent, etc.

SUMMARY

Computer systems and methods for performing proximity-based targeting ofadvertisements to Internet-connectable devices and utilizing predictedlocations of Internet-connectable devices using data networks areprovided. In some embodiments, the computer systems and methods comprisereceiving from an Internet-connectable device at least one locationevent captured by the Internet-connectable device; determining a latestlocation of the Internet-connectable device based on the at least onelocation event; determining a proximity of the Internet-connectabledevice to a campaign location based on the latest location of theInternet-connectable device; and transmitting an advertisement to theInternet-connectable device based on the proximity of theInternet-connectable device to the campaign location.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate various embodiments of thesystems and techniques, as described herein, and together with thedescription, serve to explain the principles of the systems andtechniques. In the drawings:

FIG. 1 illustrates a system that may be used with certain embodiments ofthe systems and techniques described herein;

FIG. 2 illustrates a system that may be used with certain embodiments ofthe systems and techniques described herein;

FIG. 3 illustrates a flow diagram that may be used with certainembodiments of the techniques described herein;

FIG. 4 illustrates a flow diagram that may be used with certainembodiments of the techniques described herein;

FIG. 5 illustrates an example technique for pinpoint grouping that maybe used with certain embodiments of the systems and techniques describedherein;

FIG. 6 illustrates an example technique for area grouping that may beused with certain embodiments of the systems and techniques describedherein;

FIG. 7 illustrates an example technique for path grouping that may beused with certain embodiments of the systems and techniques describedherein;

FIG. 8 illustrates a generic audience value rule model that may be usedwith certain embodiments of the systems and techniques described herein;

FIG. 9A illustrates a graph data model that may be used with certainembodiments of the systems and techniques described herein; and

FIG. 9B illustrates a graph data model that may be used with certainembodiments of the systems and techniques described herein.

DETAILED DESCRIPTION

Described herein are systems and techniques for performingproximity-based targeting of advertisements to Internet-connectabledevices and utilizing predicted locations of Internet-connectabledevices using data networks. In some embodiments, proximities ofInternet-connectable devices to public and/or private campaign locationsmay be determined. In accordance with one or more proximity-basedadvertisement targeting rules, the determined proximities may result inadvertisements being served to one or more of the Internet-connectabledevices. In other embodiments, advertisements may be served to users ofInternet-connectable devices based on routine places and/or routes. Inyet another embodiment, routine routes may also be used for providinglocation-based analytics.

Reference will now be made to accompanying figures. Occasionally, thesame reference numbers may be used throughout the figures and thefollowing description to refer to the same or similar parts. Whileseveral embodiments and features of the techniques are described herein,modifications, adaptations, and other implementations are possible,without departing from the spirit and scope of the techniques. Forexample, substitutions, additions, or modifications may be made to thecomponents illustrated in the figures, and the methods described hereinmay be modified by substituting, reordering, or adding steps to thedisclosed methods. Accordingly, the following detailed description isnot intended to limit the techniques to any specific embodiments orexamples.

FIG. 1 shows a block diagram of a system 100 that may be used withcertain embodiments of the systems and techniques described herein. Asshown in the embodiment of FIG. 1, system 100 may include, for example,an ad-serving platform 120, Internet-connectable devices 108-1 through108-n, and a publisher web server 110. Ad-serving platform 120,Internet-connectable devices 108, and publisher web server 110 maycommunicate through a network 106. Network 106 may be any one or more ofa variety of networks or other types of communication connections knownto those skilled in the art. Network 106 may include a networkconnection, bus, or other type of data link, such as a hardwire or otherconnection known in the art. For example, network 106 may be theInternet, an intranet network, a local area network, or other wirelessor other hardwired connection or connections by which ad-servingplatform 120, Internet-connectable devices 108, and publisher web server110 may communicate.

Internet-connectable devices 108 may be, include, or be part of anyentity that is capable of presenting advertisements to one or moreusers. In many embodiments, an Internet-connectable device may beidentifiable as a device uniquely associated with a user. For example,Internet-connectable device 108-1 may be a personal computer withInternet access that is uniquely identifiable by an Internet Protocol(IP) address or by an Internet cookie stored on the personal computer.Internet-connectable device 108-2 may be a smartphone that is uniquelyidentifiable by, for example, an International Mobile Equipment Identitynumber. Other Internet-connectable devices may include, for example,television set-top boxes, tablet computers, portable media devices,appliances, websites, and gaming consoles.

Publisher web server 110 may be owned and/or operated by, for example, apublisher, or other content provider, and may be, include, or be part ofa technology and service that provides webpages or other content torequesting entities such as, for example, Internet-connectable devices108. In various embodiments, publisher web server 110 may include, forexample, a general purpose computer, a server, a mainframe computer, acomputer with a specific purpose of determining and delivering contentto Internet-connectable devices 108, or a combination of one or morethereof. Content may be provided as HyperText Markup Language (HTML),Extensible Markup Language (XML), ADOBE FLASH, or any other type ofdata, or combination of data and formatting structure, that may be usedto deliver content to Internet-connectable devices 108. Webpages mayinclude images, videos, text, advertisements, or other content that issuitable for the World Wide Web and can be displayed via a web browseron Internet-connectable devices 108. Similar content may be provided bypublisher web server 110 for display via one or more other means suchas, for example, applications running on Internet-connectable devices108.

Publishers may seek to generate revenue by selling advertisement space,also known as inventory, to advertisers. In some cases, publishersdirectly sell advertisement inventory to advertisers. In other cases,publishers indirectly sell advertisement inventory to advertisersthrough advertisement networks, which may include systems such as, forexample, ad-serving platform 120. Generally, advertisement networks selladvertisement inventory on behalf of multiple publishers to advertisers.

Utilizing advertisement networks such as those operated by MillennialMedia Corporation may ensure that a publisher's advertisement inventoryis sold while also increasing the number of advertisement conversions.In some embodiments, advertisement networks may add value to apublisher's advertisement inventory by utilizing intelligence derivedfrom data associated with Internet-connectable devices 108. For example,as described below, advertisements may be more accurately targeted tousers of Internet-connectable devices 108 based on determinedintelligence data associated with the Internet-connectable devices 108.

In certain embodiments, ad-serving platform 120 may be, include, or bepart of a technology and/or service that provides advertisements fordisplay on Internet-connectable devices 108. In various embodiments,ad-serving platform 120 may be, for example, a general purpose computer,a server, a mainframe computer, a computer with a specific purpose ofserving advertisements, or a combination of one or more thereof. Forexample, ad-serving platform 120 may be a specific computer that storesand determines advertisements to be served for display onInternet-connectable devices 108. In some cases, systems such asad-serving platform 120 may be operated by advertisement networkoperators such as Millennial Media Corporation of Baltimore, Md.

In some embodiments, ad-serving platform 120 may comprise variouscomponents for performing ad-serving functionalities. As shown in theembodiment of FIG. 1, ad-serving platform 120 may comprise an ad server102, data capture module 114, an ad-fulfillment module 112, datarepositories for raw data 116 and intelligence data 104, and a dataprocessing module 118. In certain embodiments, ad server 102 may beresponsible for handling inbound requests for ads received fromInternet-connectable devices 108 (or publisher web server 110) vianetwork 106, consulting ad fulfillment module 112 for matching adrequests to ads in an ad inventory, sending responsive ads to requestingInternet-connectable devices 108 via network 106, receiving locationevents data and/or network events data from Internet-connectable devices108 via network 106, and communicating received location events dataand/or network events data to data capture module 114. In a particularembodiment, ad fulfillment module 112 may be responsible for determiningoptimal ads responsive to ad requests from Internet-connectable devices108 based on, for example, ad campaigns, ad inventory, user data, andintelligence data stored in data repository 104. Data capture module 114may perform the tasks of, for example, ingesting, filtering, and storingin data repository 116 raw location events data and/or network eventsdata received from ad server 102. In some cases, ad server 102 may sendlocation events data and/or network events data to data capture module114 in real-time or, in other cases, such data may be sentasynchronously. Data processing module 118 may be responsible for, forexample, processing raw location events data and/or network events datastored in data repository 116 to derive intelligence data, as describedfurther below, and storing the intelligence data in data repository 104for access by ad fulfillment module.

Ad-serving platform 120 may determine and serve ads toInternet-connectable devices 108 in response to ad requests initiatedby, for example, publisher web server 110, or web browsers, softwareapplications, software development kits utilized by publisher web server110, or other software components executing on Internet-connectabledevices 108. In many cases, such requests may be generated in responseto a user action. For example, a user may go to a specific website,which may trigger an advertisement request; a user may launch anapplication, which may trigger an advertisement request either at launchor at some other predetermined time; or a user may perform an actionwithin an application, which may trigger an advertisement request. Inother cases, a user may not be actively engaged with anInternet-connectable device but a background service on theInternet-connectable device may automatically request an ad at apredetermined time or in response to a specific event. For example, adisplay apparatus on a refrigerator may request an ad without userintervention based on the expiration dates of various food items storedin the refrigerator. As another example, a background service executingon an Internet-connectable device may request an ad without userintervention when it is determined that the Internet-connectable deviceis within a certain distance from a particular location.

Data repositories such as, for example, data repositories 104 and 116may include one or more files and/or relational and/or non-relationaldatabases that store information that may be accessed, used, and/ormanaged by one or more devices within ad-serving platform 120. Datarepositories 104 and 116 may be, include, or be part of any logicaland/or physical data storage solution. For example, data repositories104 and 116 may include one or more data storage devices for storingdata. As specific examples, data repositories 104 and 116 may includevolatile or non-volatile, magnetic, semiconductor, tape, optical,removable, non-removable, or other types of storage or computer-readablemedia. In some embodiments, data repositories 104 and 116 may store, forexample, location events data and/or network events data associated withInternet-connectable devices 108, intelligence data determined based onthe location events data and/or network events data, and userinformation, gathered by, and/or communicated to, ad server 102 or othercomponents within ad-serving platform 120. The same or similar data mayinstead or also be stored in one or more other data repositories.

FIG. 2 shows a more detailed diagram of the system shown in FIG. 1,which may be used with certain embodiments of the systems and techniquesdescribed herein.

As shown in FIG. 2, ad server 102, data capture module 114, dataprocessing module 118, and ad fulfillment module 112 may each compriseone or more processors (202, 206, 210, 214), memory (204, 208, 212,216), input/output (I/O) devices (not shown), and storage devices (notshown). In some embodiments, memory 204, 208, 212, and 216 may each loadlogic from respective storage devices (not shown) for execution byrespective processors 202, 206, 210, and 214 for the purpose ofperforming one or more processes consistent with the systems andtechniques disclosed herein. In a particular embodiment, ad server 102may include proximity-based targeting logic 218; data capturing module114 may include data capturing logic 220; data processing module 118 mayinclude data filtering logic 222, grouping logic 224, context resolutionlogic 226, and intelligence derivation logic 228; and ad fulfillmentmodule may include ad fulfillment logic 230. Memory 204, 208, 212, and216 may also be configured with an operating system (not shown) thatperforms functions well known in the art when executed.

Regarding Internet-connectable device 108-1, memory 232 may load logicfrom a storage device (not shown) for execution by processor 234 for thepurpose of performing one or more processes consistent with the systemsand techniques disclosed herein. For example, Internet-connectabledevice 108-1 may include data capturing logic 236, data cleansing logic238, and synchronization logic 240, which may, in some embodiments, bepart of a software development kit installed on Internet-connectabledevice 108-1.

Publisher web server 110 may also include a processor, storage, andmemory. Publisher web server 110 may include logic for receiving andresponding to, for example, HyperText Transfer Protocol (HTTP) requestsand one or more server-side scripts for providing dynamic webpages. Suchlogic, for example, may be loaded into memory from storage and executedby a processor.

Processors as described herein, including, for example, processors 202,206, 210, 214, and 234, may be, include, or be part of one or more knownprocessing devices such as, for example, a microprocessor, amicrocontroller, an application-specific integrated circuit (ASIC), afield programmable gate array (FPGA) or other type of processingcircuitry, as well as portions or combinations of such circuitryelements.

Memory components as described herein, including, for example, memories204, 208, 212, 216, and 232, may be viewed as an example of what is moregenerally referred to herein as a “computer program product” havingexecutable computer program code in accordance with discussed techniquesembodied therein such as, for example, intelligence derivation logic228. Such memories may comprise electronic memories such as randomaccess memory (RAM), read-only memory (ROM), or other types of memory,in any combination. One skilled in the art would be readily able toimplement such computer program code given the teachings providedherein. Other examples of computer program products embodying aspects ofthe invention may include, for example, optical or magnetic disks, orother computer-readable media.

It should be noted that the particular examples of the hardware andsoftware components that may be included in systems 100 and 200 aredescribed herein in more detail, and may vary with each particularembodiment. For example, systems in accordance with the techniques suchas systems 100 and 200 may comprise more than one of each of thehardware and software components specifically shown in FIGS. 1 and 2although only single instances of such components are shown insimplified system diagrams 100 and 200 for clarity of illustration.Other hardware and/or software components of a type known to thoseskilled in the art may also or instead be incorporated into systems 100and 200. It should also be noted that in some embodiments,functionalities and data provided by the components shown in systems 100and 200 may be provided by other components shown or not shown insystems 100 and 200, or may not be provided at all. For example,publisher web server 110 may additionally provide the same or similarfunctionalities as provided by ad-serving platform 120.

Referring now to FIG. 3, shown is a flow diagram 300 illustratingprocess steps that may be used with certain embodiments of the systemsand techniques described herein.

At step 310, data associated with raw location events and/or networkevents may be captured by Internet-connectable device 108-1 using, forexample, data capturing logic 236 (e.g., a software development kit). Insome embodiments, data capturing logic 236 may differ betweenInternet-connectable devices 108 or other entities. For example, withrespect to mobile phones, data capturing logic 236 may be unique to eachmobile phone platform (e.g., IOS, ANDROID, BLACKBERRY, etc.). It shouldbe noted that, in certain embodiments, location events data and/ornetwork events data may instead or also be captured by, for example,publisher web server 110 and/or ad-serving platform 120, using the sameor similar logic such as, for example, data capturing logic 220 withindata capturing module 114.

In some embodiments, captured raw location events data may be uncleanseddata identifying, for example, the location of Internet-connectabledevice 108-1 at a given moment in time. In a particular embodiment,captured raw location events data may include, for example, one or moreof the latitude and longitude coordinates, speed, acceleration,orientation, altitude, and/or direction or bearing ofInternet-connectable devices 108 at the time of one or more locationevent data captures; the precision or accuracy of each location eventdata capture; a unique identifier associated with Internet-connectabledevice 108-1; the time at which location events data is captured; statusdata, such as an internal indicator of the status of a transmission oflocation events data to ad-serving platform 120; service providerinformation; as well as several other parameters.

In certain embodiments, captured raw network events data may beuncleansed data that is generated by publisher-initiated ad requests aswell as user interactions with an ad network such as, for example, rawnetwork events data related to user interactions with servedadvertisements, advertisement impressions, clicks, and conversions. Anadvertisement impression may be the placement of an advertisement on apiece of “real estate” that is managed by a publisher. An exampleimpression may be the display of an advertisement on a website. A clickmay represent an occurrence where an end-user selects an advertisementusing, for example, a mouse click or touch screen selection. Aconversion may refer to the process of matching a click on anadvertisement with a corresponding user action that signifiesfulfillment on the advertisement (e.g., making a purchase). Raw networkevents data gathered from impressions, clicks, and conversions mayinclude, for example, domain data of a website on which an advertisementis displayed, an identifier and/or subject matter of an application inwhich an advertisement is displayed, advertisement metadata,Internet-connectable device information (e.g., operating system, handsetcharacteristics, etc.), and any publisher metadata (e.g.,primary/secondary channels).

In some embodiments of the systems and techniques described herein, datacapturing logic 236 may capture the most accurate raw location eventsdata associated with, for example, Internet-connectable device 108-1 asfrequently as possible while minimizing the impact on the user andresources of Internet-connectable device 108-1. For example, datacapturing logic 236 may acquire the most accurate raw location eventsdata associated with Internet-connectable device 108-1 using, forinstance, a GPS receiver, cell tower triangulation, and/or Wi-Filocation data at a desired and/or optimal time and/or frequencydetermined based on one or more device states of Internet-connectabledevice 108-1. In some embodiments, the time and/or frequency of rawlocation events data captures may be adjusted as the one or more devicestates of Internet-connectable device 108-1 changes. For example, in aparticular embodiment, device state changes may indicate a change in thelevel of utilization of Internet-connectable device 108-1 resourcesand/or the movement of Internet-connectable device 108-1.

At step 320 data filters may be used to cleanse captured raw locationevents data and/or network events data before storing any events datalocally within Internet-connectable device 108-1 and/or transmitting anyevents data to ad-serving platform 120. In some embodiments, cleansingmay result in captured raw location events data and/or network eventsdata of low quality or irrelevance being discarded and not stored withinInternet-connectable device 108-1 or transmitted to ad-serving platform120. The criteria for determining the quality and/or relevance ofcaptured raw location events data and/or network events data may varydepending on, for example, the embodiment and/or theInternet-connectable device.

In some embodiments, events data cleansing may be handled by datacleansing logic 238 of Internet-connectable device 108-1, as shown inFIG. 2. In other embodiments, events data cleansing may instead or alsobe handled by ad-serving platform 120 (or another device) to avoidoverburdening Internet-connectable device 108-1. The handling of eventsdata cleansing by ad-serving platform 120 may also be desired due to thelimited resources available to Internet-connectable device 108-1 suchas, for example, limited storage space, memory capacity, and/orprocessor speed. For example, due to limited storage space, events datamay be purged from Internet-connectable device 108-1 once transmitted toad-serving platform 120. As a result, events data stored withinInternet-connectable device 108-1 may not provide a large enough samplesize to provide a full and accurate view of a user's events datahistory. Without a full and accurate view of a user's events datahistory, it may be difficult to determine the quality and relevance ofcaptured events data in some cases. In these cases, ad-serving platform120 may be better suited to cleanse events data as ad-serving platform120 may have a full and accurate view of a user's events data history.

In some embodiments, captured raw location events data may be cleansedusing, for example, accuracy and/or proximity data filters. In certainembodiments, accuracy data filters may be used, for example, for thepurpose of determining and discarding raw location events data captureswith an accuracy radius that is too large. Proximity data filters may beused, for example, to determine whether a raw location event datacapture indicates that Internet-connectable device 108-1 is locatedwithin a specific distance tolerance of a previously captured location.If so, one of the location events data captures may be discarded and notstored within Internet-connectable device 108-1 and/or transmitted toad-serving platform 120. In some cases, proximity data filters may bemore heavily used for time-based captures of raw location events data,where the location of Internet-connectable device 108-1 may not havechanged between location requests.

In some embodiments, data filters may also be used to cleanse rawlocation events data that indicates a “teleportation event,” which is animpossible move from one location to another. Such data may be discardedand not stored within Internet-connectable device 108-1 and/ortransmitted to ad-serving platform 120. Generally, a teleportation eventmay be caused by Internet-connectable device 108-1 misreading itscurrent location.

One way to identify teleportation events is to compare the distance andtime period between two locations to determine the velocity that wouldbe required to travel between the locations. In some embodiments, if thevelocity is above a certain threshold, both location event data capturesmay be identified as potential candidates for teleportation events.Identifying which event is the teleportation event may be achieved, forexample, by looking at the overall context of Internet-connectabledevice's 108-1 location events data history.

At step 330 captured location events data and/or network events data maybe transmitted to ad server 102 within ad-serving platform 120 vianetwork 106. In some embodiments, transmission may be handled bysynchronization logic 240 of Internet-connectable device 108-1, as shownin FIG. 2. In various embodiments, transmission may occur continuously,at a predetermined time, upon a triggering event, or at a time and/orfrequency determined to be desired and/or optimal for such transmissionsbased on, for example, one or more device states of Internet-connectabledevice 108-1 as described above. In some embodiments, location eventsdata may be packaged and transported over an encrypted and authenticatedtransport medium. In some embodiments, transmissions may be achievedincrementally by transmitting only location events data that has notbeen synchronized with ad-serving platform 120 since the last successfulinvocation of the synchronization process.

Once location events data and/or network events data is captured andtransmitted to ad server 102, the location events data and/or networkevents data may be transmitted to data capture module 114, which maycomplete ingestion of the location events data and/or network eventsdata by, for example, storing it in data repository 116 at step 340. Inmany embodiments of the disclosed systems and techniques, locationevents data and/or network events data associated withInternet-connectable device 108-1 may be stored by data capture module114 as part of a record created for Internet-connectable device 108-1upon first encounter of Internet-connectable device 108-1. In someembodiments, a record, and/or location events data and/or network eventsdata, may be linked to Internet-connectable device 108-1 by a commonunique global device identifier, or other attribute, associated withInternet-connectable device 108-1. In certain embodiments, ingestedlocation events data and/or network events data may be indexed based onone or more data elements such as, for example, a timestamp.Internet-connectable device records may also maintain other informationincluding, for example, whether each Internet-connectable device isopted in or out of behavioral targeting.

At step 350, intelligence data may be determined based on the storedlocation events data and/or network events data using, for example,logic within data processing module 118. At step 360, the intelligencedata may be stored in data repository 104. Intelligence data may then beused by ad fulfillment logic 230 at step 370 for the purpose ofdetermining optimal ads to serve to Internet-connectable device 108-1 inresponse to ad requests.

FIG. 4 illustrates process steps that may be used for derivingintelligence data based on location events data and/or network eventsdata in accordance with some embodiments of the disclosed systems andtechniques. FIG. 4 illustrates the process steps in a series of processlayers organized from top to bottom, each subsequent process layerbuilding upon the process steps performed within one or more previousprocess layers. The process layers illustrated in FIG. 4 includefiltering and mining process layer 400, grouping process layer 410,context resolution process layer 420, routine and traveler process layer430, intelligence derivation process layer 440, and external interfacesprocess layer 450. It should be noted that FIG. 4 merely depicts exampleprocess layers and process steps. For example, in certain embodiments,one or more of the process layers and/or process steps illustrated inFIG. 4 may not be required or performed, and/or different and/oradditional process layers and/or process steps may be utilized.

As illustrated in filtering and mining process layer 400, locationevents data and/or network events data stored in data repository 116 maybe filtered and mined (401, 402) using, for example, data filtering andmining logic 222 before any further data processing is performed. Insome embodiments, filtering and mining processes 401 and 402 may executein real-time or in an offline manner. In some embodiments, filtering andmining processes 401 and 402 may result in the removal of unneededand/or unwanted location events data and/or network events data. In someembodiments, filtering and mining processes 401 and 402 may vary dependon, for example, the type of processing to be performed within thesubsequent process layers. In certain embodiments, location events dataand/or network events data removed during filtering and mining processes401 and 402 may remain in data repository 116, as the data may be usefulfor other to-be-performed data processing. In some embodiments,filtering and mining processes 401 and 402 may also provide the benefitof reducing the volume of data to be processed.

In a particular embodiment, filtering and mining processes 401 and 402may include filtering location events data and/or network events databased on, for example, the ability to resolve unique global identifiers;the ability to resolve domain/application information; whether anyInternet-connectable devices have opted out of behavioral targeting;geographical thresholds; data accuracy thresholds; and the inability tomap location events data and/or network events data to an internaltaxonomy of audience categories, as described below. For example,location events data and/or network events data originating fromcountries that are not being targeted by advertisers, or location eventsdata that does not correspond to a precise location, may be removedduring the filtering process. As another example, filtering and miningprocesses 401 and 402 may also include the identification and removal ofteleportation events.

In some embodiments, as illustrated in grouping process layer 410, rawlocation events data, network events data, and/or data derived infiltering and mining process layer 400 may be combined into one or moreevent groupings using, for example, event grouping logic 224. In someembodiments, event groupings may provide process steps within subsequentprocess layers with more accurate and meaningful data than would beprovided with a single location event or network event. As a result,process steps within subsequent process layers may also provide moreaccurate and meaningful data.

In some embodiments, event grouping may be divided into network eventgrouping 414 and location event grouping, the latter of which maycomprise, for example, pinpoint grouping 411, wide area grouping 412,and/or path grouping 413. In certain embodiments, location eventgrouping may group filtered location events based on one or moreattributes associated with the filtered location events. For instance,location event grouping may consider attributes such as, for example,latitude, longitude, horizontal accuracy, and/or timestamp. In somecases, the attributes considered may depend on the type of grouping tobe performed (e.g., pinpoint grouping 411 versus wide area grouping412).

In some embodiments, pinpoint grouping 411 may include grouping locationevents associated with an Internet-connectable device (e.g., 108-1) toidentify “stops,” which may be isolated locations identified bylatitude/longitude coordinates that are visited by the user of theInternet-connectable device for a minimum amount of time. In theseembodiments, identified stops may be the result of fine-grained locationgrouping techniques. Example techniques for performing pinpoint grouping411 include intersecting circle geometry and Kalman filtering.

In some embodiments, the intersecting circle geometry technique, anexample of which is illustrated in FIG. 5, may be used to grouplow-accuracy location events such as, for example, location eventsdetermined using cell tower triangulation. When grouping low-accuracylocation events, the intersecting geometry technique may more accuratelyidentify locations visited by an Internet-connectable device and givegreater preference to more accurate results in comparison to otherpinpoint grouping techniques.

In certain embodiments, to enable geometric calculations using standardCartesian coordinates, the intersecting circle geometry technique mayfirst convert latitude/longitude coordinates of location events to theUniversal Transverse Mercator (UTM) coordinate system. As shown at step510 of FIG. 5, the intersecting geometry technique may then examine twolocation events associated with an Internet-connectable device, areference (starting) location event (A) and a comparison location event(B), and draw a circle around each one. The center of each locationevent circle may be, for example, the UTM coordinate, and the radius maybe equal to the reported accuracy of the location event (e.g., celltower triangulation may have an accuracy radius of around 500 meters).If the two location event circles intersect, the location events aremerged and the intersection is determined and treated as a potentialstop at step 520.

At step 530, the geometric area of the determined intersection may becalculated along with its centroid and bounding box, or “envelope,” asshown by the dotted box in FIG. 5. At step 540, the longest length fromthe centroid to the center of an edge of the envelope is determined. Atstep 550, the potential stop's UTM coordinates are set to the centroid,and the radius of the potential stop is set to the length determined atstep 540. Based on the UTM coordinates and the radius determined at step550, a circle may be drawn around the potential stop as can be seen atstep 550. In some embodiments, the amount of time theInternet-connectable device was located at the potential stop may alsobe calculated. For example, the potential stop's beginning time may beset to the timestamp associated with the earliest merged location eventand the potential stop's ending time may be set to the timestampassociated with the newest merged location event.

In certain embodiments, the steps illustrated in FIG. 5 may be repeatedfor subsequent location events in the Internet-connectable device'ssequence of location events. For example, returning to step 510, thereference location event may be the potential stop and the comparisonlocation event may be the next location event in theInternet-connectable device's sequence of location events. In theseembodiments, as long as location event circles intersect with thepotential stop circle, the potential stop circle and the amount of timethe Internet-connectable device was located at the potential stop may berecalculated. If a subsequent location event circle completely overlapswith the potential stop circle, the amount of time may be extended andthe centroid may be adjusted based on the centroid of each circle. If asubsequent location event circle only partially overlaps with thepotential stop circle, the area of the potential stop circle may reducein size and the amount of time may be extended.

In some embodiments, if no location event circles overlap with thepotential stop circle, the amount of time the Internet-connectabledevice was located at the potential stop may be checked against athreshold. If the amount of time is greater than the threshold, thepotential stop may be stored as a stop, and its UTM coordinates may beconverted back to latitude/longitude coordinates. If the amount of timeis less than the threshold, the potential stop may be discarded. In someembodiments, checking the amount of time against a threshold may resultin only significant stops being stored. For example, stops at trafficlights may be discarded.

In some embodiments, the Kalman filtering technique may be used to grouphigh-accuracy location events such as, for example, location eventsidentified using GPS. For example, although GPS-determined locationevents may have better (i.e., smaller) accuracy ranges, GPS data has amargin of error and can sometimes appear to “jump” around the correctlocation. Thus, as described below, the Kalman filtering technique maybe used to correct this margin of error by using models and a weightedaveraging technique to produce better estimates of location events.

In certain embodiments, the Kalman filtering technique may reviewlocation events associated with an Internet-connectable device todetermine whether they fall within a certain accuracy and distance fromeach other. If so, the location events may qualify to be merged. In someembodiments, a determination as to whether location events should bemerged may be based on a maintained model comprised of a probable rangeof motion and the recent history of movement of the Internet-connectabledevice. If the location events qualify to be merged, a weighted averagetechnique may be used to merge the location and accuracy of the locationevents into a stop. As with the intersecting geometry technique, in someembodiments, subsequent location events may be merged with the stopuntil subsequent location events no longer qualify. In a particularembodiment, weight may be added to the stop with each location eventthat is merged into it. For example, if a stop comprised of threelocation events has a fourth location event merged into it, the stop'slocation and accuracy may be weighted three times more heavily than newlocation events (all other factors being equal). Also, as with theintersecting geometry technique, in some embodiments, the amount of timethe Internet-connectable device was located at the stop may bedetermined and checked against a threshold to determine whether the stopshould be discarded as insignificant.

In certain embodiments, wide area grouping 412 may include groupinglocation events associated with the Internet-connectable device todetermine a general area visited by the Internet-connectable device forthe purpose of, for example, determining where the Internet-connectabledevice has traveled. In these embodiments, determined areas mayrepresent higher level abstractions about where the user of theInternet-connectable device has spent time and may be the result ofcoarse-grained location grouping techniques.

In some embodiments, wide area grouping 412 may operate on two or moredistance levels such as, for example, medium range and long range. Inthis example, a first pass may group location events within a mediumrange (e.g., 1-10 km), and a second pass may combine the medium-rangelocation event groups with location event groups within a long range(e.g., 50-100 km). In some embodiments, users of Internet-connectabledevices may be enrolled into different audience values depending onwhether the user is associated with a medium- or long-range area. Forexample, a user may be enrolled into audience values based on travel todifferent parts of a city, different cities, or different countries. Incertain embodiments, each audience value may require a different levelof granularity for the area data.

An example of wide area grouping 412 is illustrated in FIG. 6. In someembodiments, to enable geometric calculations using standard Cartesiancoordinates, wide area grouping 412 may first convert latitude/longitudecoordinates of location events to the Universal Transverse Mercator(UTM) coordinate system. As shown at step 610 of FIG. 6, wide areagrouping 412 may then examine two location events associated with anInternet-connectable device, a reference (starting) location event (A)and a comparison location event (B), and draw a circle around each one.The center of each location event circle may be, for example, the UTMcoordinate, and the radius may be equal to the reported accuracy of thelocation event (e.g., cell tower triangulation may have an accuracyradius of 500 meters). If the two location event circles intersect,wide-area grouping may merge the location events using, for example,geometric union operations at step 620. In certain embodiments,comparison location event circles that do not intersect with but fallwithin a certain distance tolerance to the reference location eventcircle may also be considered at step 620 to be merged with thereference location event.

At step 620, the union between the reference location event circle andthe comparison circle may be determined, resulting in an ellipse. Atstep 630, the centroid of the ellipse may be determined as well as themajor and minor radii. At step 640, a circle may be created based on themajor radii, and a tolerance buffer may be created for the circle atstep 650. In some embodiments, the steps of FIG. 6 may be continuouslyrepeated with the circle created at step 640 taking the place of thereference location event until no more location events fall within thecircle created at step 640, or within a certain distance tolerance tothe circle. Once no more location events fall within the referencelocation event circle, the circle may be stored as a visited area, andthe UTM coordinate may be converted back to latitude/longitudecoordinates.

In some embodiments, for a reference location event circle and thecomparison circle to be considered for area grouping 412, thecorresponding location events must fall within a certain time threshold.If the two location events do not fall within a certain time threshold,they may be considered as separate areas.

In some embodiments, path grouping 413 may be used to capture movementof an Internet-connectable device. Path grouping 413 may include thegrouping of location events, stops, and/or areas to determine pathstraveled by an Internet-connectable device. In certain embodiments,paths may be interspersed with, for example, stops, but a second levelof analysis may also merge paths separated by short distances.

In at least one embodiment, path grouping 413 may run in parallel withpinpoint grouping 411. In this embodiment, as location events areexamined, location events that demonstrate evidence of motion (e.g., aspeed greater than a threshold or some other attribute indicatingmotion) may be handled by path grouper 413 while those that showlocation events in the same place over time may be handled by a pinpointgrouper. For example, the first location event that demonstratesevidence of motion may result in the end of a current pinpoint grouping411 process and the beginning of a new path grouping 413 process. Asadditional location events that demonstrate motion are reached, theadditional location events may be added to a path group. In someembodiments, an overall direction and average speed for the path may becalculated and updated with each addition of a location event. When alocation event is examined that no longer shows evidence of motion, thepath grouping 413 process may end and a new pinpoint grouping 411process may begin.

An example of a path grouper running in parallel with a pinpoint grouperis illustrated in FIG. 7. As shown in FIG. 7, location events A throughP are examined. Location events A through D may be determined to notevidence motion and, thus, pinpoint grouping may merge location events Athrough D, resulting in the identification of a stop. Location events Ethrough I may be determined to evidence motion and, thus, path groupingmay determine a path beginning at location event E and extending tolocation event I. Location events J through N may be determined to notevidence motion and, thus, pinpoint grouping may merge location events Jthrough N, resulting in the identification of a stop. Lastly, locationevents O and P may be determined to evidence motion and, thus, pathgrouping may determine a path beginning at location event O and endingat location event P. As also shown in FIG. 7, in certain embodiments,visit and path durations may be calculated by examining timestamps ofbeginning and ending location events; paths may be comprised of locationevent nodes that include, for example, latitude/longitude coordinates;paths may be comprised of line segments between location event nodesthat include, for example, bearing (computed for an entire path) andvelocity (computed for each line segment and the overall path)information; and effective paths extending from the beginning locationevent node to the ending location event node may be determined.

In some embodiments, event grouping may be history-aware, meaning thathistorical event data may be considered when grouping event data.History-aware grouping may, in some cases, improve the accuracy ofgrouped event data. For example, path grouping may more accuratelyidentify paths taken by an Internet-connectable device by consideringrecurring stops from previous time periods. As a specific example,history-aware path grouping may consider, for example, the fact that anInternet-connectable device tends to be located at a first locationevery weekday from 8:00 a.m. to 5:00 p.m. and at a second location everyweekday from 6:00 p.m. to 7:00 a.m. History-aware grouping may beparticularly helpful when performing place resolution 421. For example,if a user visits the same set of stores on a regular basis, placeresolution 421 may more confidently determine that the user is at one ofthose store in the future (e.g., a confidence value may be higher).

Network grouping 414 may be used to group content from ad-servertraffic, such as, for example, to collapse ad views into smallertransactions as well as to amplify the accuracy of the overall data set.In some embodiments, network grouping 414 may include, for example,aggregating network event data associated with an Internet-connectabledevice, the aggregated network event data being associated with anindividual session with, for example, a publisher website orapplication. Impression grouping, for instance, may collapse multipleimpressions that occur during an individual session into a singlegrouping that includes metadata that specifies, for example, theduration of the session, the number of impressions during the session,information associated with each impression, and/or domain data. In someembodiments, aggregate metadata fields may be used to track informationabout each of the individual events in a grouped session. For example,if a user is playing a game on the user's Internet-connectable devicefor 30 minutes and has been served 10 ads from an ad server during thistime period, one grouped interaction with the ad server may result witha count of 10 ads and a duration of 30 minutes. Other network eventgroupings may consider, for example, clicks and/or matched conversions.

It should be noted that, in some embodiments, an event grouping may becomprised of a combination of location event data and network eventdata, as well as other data.

Within the context resolution process layer 420, raw location eventsdata, raw network events data, and/or data derived in any one or more ofthe previous process layers may be given a real-world context using, forexample, context resolution logic 226. Context resolution may becomprised of, for example, location data context resolution and networkdata context resolution. Examples of location data context resolution ina particular embodiment may be point place resolution 421, polygon placeresolution 422, and route resolution 426. Examples of network datacontext resolution in a particular embodiment may be application contextresolution 423 and web context resolution 424. Examples of other contextresolution processes that may be used in some embodiments of thedisclosed systems and techniques include reverse geocoding 425, andinternal taxonomy mapping 427.

In certain embodiments, point place resolution 421 may be used todetermine a place of interest to a user of an Internet-connectabledevice based on, for example, one or more stops visited by theInternet-connectable device, as determined using pinpoint grouping. Aplace of interest may be, for instance, commercial or non-commercialplaces located near a stop such as, for example, a restaurant, shop,museum, theatre, park, etc. In some embodiments, an internal resource oran external resource provided by a third party may be queried, forexample, to provide the translation from coordinate-based data, or datadetermined using reverse geocoding 425 (described below), to one or moreviable places of interest. Such external resources may provide, forexample, business names, street addresses, categories and/orsubcategories associated with a place of interest, business hours, pricestructure, and other details.

In certain embodiments, polygon place resolution 422 may be performed todetermine a specific area visited by a user of an Internet-connectabledevice. In some embodiments, polygon place resolution 422 may query, forexample, one or more stops associated with an Internet-connectabledevice against geographical polygon data to determine whether the stopsfall within a geographically-defined area. Geographical polygons mayrepresent predefined bounded areas of various size such as, for example,neighborhoods, cities, outdoor activities, urban activities,transportation hubs, and custom bounded areas. In some embodiments,polygon place resolution 422 may be used to retrieve real-world contextdata associated with, for example, a stop or area visited by anInternet-connectable device based on metadata associated with a boundedarea in which the stop or area is located. In a particular embodiment,bounded area metadata may be retrieved from a third-party resource.

A neighborhood bounded area may be relatively small in scale andprovide, for example, demographic and real estate data. A city boundedarea may be similar to a neighborhood bounded area but may cover arelatively large area. City bounded areas may also be included in“destination” bounded areas, which may be used to identify differenttypes of urban destinations such as, for example, business, leisure,gambling, and sporting destinations. An outdoor activity bounded areamay identify a large area such as, for example, national parks andwilderness areas. Outdoor activity bounded areas may provide informationabout popular outdoor activities including, for example, hunting,fishing, skiing boating, and scuba diving. An urban activity boundedarea may be similar to an outdoor activity bounded area but on a smallerscale. For example, an urban activity bounded area may identify a beach,amusement park, sports venue, or concert venue. A transportation hubbounded area may include, for example, airports, bus stations, and trainstations. Custom bounded areas may be areas defined by, for example, acustomer. For example, a customer may define a bounded area for a storeowned by the customer.

In some embodiments, place resolution 421 and 422 may be built on aprobability model. In these embodiments, place resolution 421 and 422may consider many weighted factors when determining, for example, aplace of interest or a general area visited by a user of anInternet-connectable device. For example, point place resolution 421 mayconsider factors such as the accuracy of a stop, the duration of timespent at a stop, the distance between a stop and a place of interest,metadata associated with viable places of interest, the reliability andaccuracy of the data provided by external resources, the types ofbusinesses in the general area of a stop, the time of day, the densityof viable places of interest in a given location, previous visits to thesame area/location, etc. In some embodiments, one or more of thesefactors may be given a weight based on, for example, the reliability ofthe factor. In certain embodiments, weighted factors may be used todetermine and assign confidence values to, for example, one or moreviable places of interest or areas. In these embodiments, the confidencevalues may be used to determine preferable places of interest and/orareas. In some cases, places of interest and/or areas that are lesspreferable may be discarded. As a specific example, the time of dayassociated with a stop may result in the selection of a business of acertain type as a place of interest versus a business of a differenttype.

In some embodiments, route resolution 426 may be used to determineroutes based on paths, as determined using path grouping. Routes mayidentify, for example, roads, highways, and/or railways traveled by anInternet-connectable device defined by segments with start and endpoints. In some cases, route data may be provided using an externalresource provided by a third party, such as mapping software.

Web context resolution 424, in some embodiments, may be used, forexample, to determine context data associated with provided web domaindata (e.g., Uniform Resource Locator). For example, web domain data maybe used to query third-party web content categorization services forsubject matters and/or brands related to the provided web domain data. Acomponent within ad-serving platform 120 may perform calls to thethird-party web content categorization services to retrieve the data. Insome embodiments, a caching system may be used to store the data locallyfor a pre-determined period of time to avoid request duplication. Incertain embodiments, application context resolution 423 may be used todetermine context data such as, for example, subject matters and/orbrands, related to provided application data. For example, applicationcontext resolution 423 may consider pertinent information extracted fromsoftware application stores (e.g., ANDROID and IOS application stores)to determine the subject matter of an application used by a user on anInternet-connectable device.

In some embodiments, location data context resolution may utilizereverse geocoding 425 when determining a real-world context of, forexample, one or more stops visited by an Internet-connectable device.Reverse geocoding 425 may be used to determine, for example, the city,state, postal code, neighborhood, and/or street address of a stop. Incertain embodiments, the data retrieved using reverse geocoding 425 mayvary depending on the type of information ultimately desired for thestop. For example, if demographic information, including, for instance,affluence, education, and employment, is desired for the stop,neighborhood and/or city data may be retrieved using reverse geocoding425. As another example, if data necessary for performing placeresolution, as described below, or real estate information for a stop isdesired, street address data may be retrieved using reverse geocoding425. In some embodiments, reverse geocoding 425 data may be retrievedfrom, for example, a third-party reverse geocoding resource based onprovided latitude/longitude coordinates associated with a stop.

In some embodiments, context resolution 420 may include mapping derivedcontext data associated with a user of an Internet-connectable device toone or more audience categories and/or internal audience categorytaxonomies 427. In some embodiments, an audience category may be, forexample, a particular brand and/or subject matter to which derivedcontext data may be associated. In some embodiments, a standardizedtaxonomy of audience categories may consist of multiple audiencecategories arranged in a hierarchical tree structure. For example, astandardized taxonomy of audience categories may consist of one or moresequences of audience categories arranged in a broad-to-narrowrelationship. Additionally, each audience category may have multiplebranches, each consisting of a different sequence of audiencecategories. As a specific example, a “New Car Dealership” audiencecategory may be included as part of the following sequence of audiencecategories arranged from broad to narrow: “Shopping”>“Automotive”>“NewCar Dealership.” As another specific example, a “Gym” audience categorymay have multiple branches, each comprised of a different sequence ofaudience categories. Two such branches are represented as follows:“Gym”>“Supplements Store”>“GNC” and “Gym”>“Supplements Store”>“VITAMINSHOPPE.”

In some embodiments, determining whether derived context data associatedwith a user of an Internet-connectable device is mapped to an audiencecategory and/or an audience category taxonomy may be rule-based, whereineach rule may be unique to and/or customizable for each audiencecategory and/or audience category taxonomy. In certain embodiments, anaudience category affinity rule that is associated with an audiencecategory and/or audience category taxonomy may require that certaincriteria are met in order for a user of an Internet-connectable deviceto be mapped to that audience category and/or audience categorytaxonomy. In some embodiments, such criteria may be met in more than oneway. For example, an audience category affinity rule may be satisfiedbased on real-world context data determined using reverse geocoding 425,place resolution 421 and 422, route resolution 426, routine placeresolution 431, web context resolution 424, application contextresolution 423; event groupings 411-414; location events data; ornetwork events data alone, or a combination thereof.

As a specific example, an audience category affinity rule may require acertain number of visits and/or frequency of visits by a user of anInternet-connectable device to one or more places and/or areas in orderfor the user to be mapped to an audience category and/or audiencecategory taxonomy. For example, an audience category affinity ruledefined for a “Gym” audience category may require a user of anInternet-connectable device to visit gym-related places at least once aweek in order for the user to be mapped to the “Gym” audience category.As another example, an audience category affinity rule defined for a“Home Improvement Store” audience category may require the user to visita home improvement store once a week in order for the user to be mappedto the “Home Improvement Store” audience category. As yet anotherexample, an audience category affinity rule may require a certain numberof conversions associated with an audience category in order for theuser to be mapped to the audience category.

A standardized taxonomy of audience categories may be implemented invarious ways. In some embodiments, a standardized taxonomy of audiencecategories may be implemented using a data structure. For example, in aparticular embodiment, a tree data structure that emulates ahierarchical tree structure with a set of linked data nodes may be used.In this embodiment, each data node may represent an audience categorybelonging to a standardized taxonomy of audience categories.

In many embodiments, a standardized taxonomy of audience categories maybe modified and/or customized. For example, in some embodiments,audience categories may be added and/or removed from a tree structurebased on, for example, advertisement campaigns. As another example, insome embodiments, an advertiser may be associated with a standardizedtaxonomy of audience categories customized for the needs of thatadvertiser.

Within the routine and traveler process layer 430, places and/or areas auser of an Internet-connectable device is routinely located or the userhas visited may be determined based on raw location events data, rawnetwork events data, and/or data derived in any one or more of theprevious process layers using, for example, routine locations logic 227.Process layer 430 may comprise, for example, routine place resolution431 (stops), routine place resolution 432 (areas), routine pathresolution 433, and traveler resolution 434.

In certain embodiments, routine place resolution 431 and 432 may be usedto identify places of interest or areas visited by a user of anInternet-connectable device on a regular basis. Example routine placesmay include, for example, where an Internet-connectable device userlives, works, goes to school, or shops. In some embodiments, routineplace resolution 431 and 432 may determine routine places based on, forexample, place resolution 421 and 422 and/or route resolution 426. As aspecific example, routine place resolution 431 and 432 may identify aroutine place based on stops and/or areas at which anInternet-connectable device is located for a significant amount of time,as well as on which days and at what times the Internet-connectabledevice is located at the stops and/or areas. As another example, aroutine place may be identified based on whether a stop identified as acandidate routine place is a start or end point of a route determinedusing route resolution 426.

In some embodiments, routine place resolution may identify the locationof a routine place for an Internet-connectable device by firstidentifying candidate stops associated with the Internet-connectabledevice that overlap with a time window that corresponds to the routineplace and storing the duration of each candidate stop's overlap with thetime window. For example, to determine a home routine place for anInternet-connectable device, routine place resolution may identifycandidate stops associated with the Internet-connectable device thatoverlap with a 10:00 p.m. to 6:00 a.m. time window and store theduration of each candidate stop's overlap with the time window. In theseembodiments, once candidate stops are identified, they may be grouped bylocation, and the overlap durations of the candidate stops may be addedtogether for each group. The grouped candidate stops may then beorganized by overlap duration. The group with the longest overlapduration may be the best candidate for the routine place correspondingto the time window. In certain embodiments, the time windows may beconfigured. In some cases, increasing the size of a time window mayinclude more candidate stops but may also lower the accuracy of routineplace determinations.

In certain embodiments, routine path resolution 433 may be used toidentify paths routinely traveled by a user of an Internet-connectabledevice. As an example, routine path resolution 433 may identify aroutine path based on the number of times a user has traveled a specificpath based on data derived using route resolution 426.

In some embodiments, travel by a user of an Internet-connectable devicemay be determined using traveler resolution 434. In a particularembodiment, traveler resolution 434 may determine areas visited by theuser that are outside of the user's home area, which may be determinedusing routine place resolution 431 and/or 432. In this embodiment, thesize of a user's home area may be directly proportional to the number ofroutine places associated with the user, and if multiple routine placesare associated with the user, the distance between the routine places,the amount of time spent at each routine place, etc.

Traveler resolution 434 may consider various factors when determiningwhether a user is a traveler. For example, traveler resolution 434 mayconsider continuous lengths of time spent outside of the user's homearea, discarding any negligible time spent outside of a user's home areathat may be attributable to, for example, daily commuting. In someembodiments, a visited area may be a coarse-grained area visited by theuser determined based on wide area grouping 412, but traveler resolution434 may also consider one or more stops and/or paths within that area.In certain embodiments, a user may be associated with multiple visitedareas and return trips to those visited areas may be tracked.

What follows are example process steps that may be performed by travelresolution 434 in accordance with some embodiments of the systems andtechniques disclosed herein. In these embodiments, anInternet-connectable device user's home area may be determined. Once theuser's home area is determined, location events outside of the user'shome area may be tracked and grouped into “visits” if within aconfigurable radius of other location events outside the user's homearea. Additional information such as, for example, overnight stayswithin a visited area may also be tracked. In some cases, overlappinggroups may be merged into a single and/or additional group. In theseembodiments, visits may be grouped into “visited areas” based on alarger configurable radius such as, for example, a radius of 100 km. Inthese embodiments, a traveler score, which may be indicative of theamount a user travels to a visited area, may be determined for a visitedarea associated with the user based on, for example, the number ofvisits and overnight stays within the visited area.

Within the intelligence derivation process layer 440, intelligence dataassociated with a user of Internet-connectable devices may be derived,managed, and updated using, for example, intelligence derivation logic228, and stored in data repository 104 for access by ad fulfillmentmodule 112. In some embodiments, intelligence data may be derived fromraw location events data, raw network events data, and/or data derivedin any one or more of the previous process layers. In some embodiments,intelligence data may comprise an audience value in which a user of anInternet-connectable device is enrolled. In some embodiments, audiencevalues may represent segmented audiences, each segment consisting ofInternet-connectable device users with similar interests, needs,characteristics, behavioral patterns, etc., that may be targeted byadvertisement campaigns.

For example, two possible audience values may be “Parent” and “Health &Fitness Enthusiast.” The Parent audience value may be assigned toInternet-connectable device users with, for example, an affinity to babyshops, and the Health & Fitness Enthusiast audience value may beassigned to Internet-connectable device users with, for example, anaffinity to gyms and health shops. More examples of audience values mayinclude: Affluence; Age <Age>; Art & Culture Enthusiast; Boomers; BridalShopper; Car Buyer; Car Buyer <Make/Model>; Car Buyer <New/Used>; CarBuyer <Vehicle Class>; DVD Enthusiast; Education Level <Level>;Environmentally Friendly; Ethnicity <Type>; Explicit Location; GadgetGeek; Gambler; Gaming Enthusiast; Gender <Male/Female>; Gym Goer; Health& Fitness Enthusiast; Home Improvement Enthusiast; Home Owner/Renter;Household Income <Amount>; IT Decision Makers; Luxury Car Buyer; MaritalStatus <Single/Married/Divorced>; Moms; Movie Enthusiast; MovieEnthusiast <Movie Type>; Music Enthusiast; Music Enthusiast <MusicType>; Moms <New/Expectant>; Night Life Enthusiast; Outdoors Enthusiast;Parent; Pet Owner; Restaurant Enthusiast; Restaurant Enthusiast <CuisineType>; Routine Place <Home/Work/School>; Shopper; Shopper <Type>; SportsFan; Sports Fan <type>; Student; Technology Enthusiast; Teens; Traveler;Traveler <Time since last travel>; Traveler <Type>; and Traveler<Location>.

In some embodiments, audience values may have one or more respectiveaudience value rules, which may be used by, for example, audience valueresolution 441 to determine whether users of Internet-connectabledevices should be enrolled into one or more audience values. In theseembodiments, whether users are enrolled into an audience value maydepend on various data inputs and how the various data inputs areweighted. Audience value rules are described in more detail below withreference to FIG. 8.

FIG. 8 illustrates a generic audience value rule model 800. In someembodiments, generic audience value rule models such as model 800 may beused to create unique and/or customizable audience value rules. Forexample, generic audience value rule models may include configurabledata inputs and weight parameters. In the example of FIG. 8, genericaudience value rule model 800 provides category-based,interaction-based, and related audience value-based parameters that maybe adjusted to create different audience value rules.

Category-based parameters may allow for the designation of audiencecategories and/or audience category taxonomies that are relevant fordetermining whether an Internet-connectable device user qualifies for anaudience value. For example, an audience value rule created for a“Health & Fitness Enthusiast” audience value using rule model 800 mayhave category-based parameters that include identifiers for audiencecategories “Gym,” “VITAMIN SHOPPE,” and “GNC,” and/or audience categorytaxonomies that include audience categories “Gym,” “VITAMIN SHOPPE,” and“GNC.”

Interaction-based parameters may allow for the consideration ofdifferent types of Internet-connectable device user interactions withrelevant advertisements such as, for example, impressions, clicks, andconversions, as well as the location at which interactions occur, whendetermining whether the Internet-connectable device user qualifies foran audience value.

Related audience value-based parameters may allow for the designation ofother audience values assigned to an Internet-connectable device userthat are relevant to determining whether the Internet-connectable deviceuser qualifies for an audience value. Related audience values maydirectly or indirectly influence the reference values for other audiencevalues. For example, a “Mom” audience value may depend upon two otherrelated audience values, the “Parent” audience value and the “Female”audience value. In this example, a user may be required to be enrolledin the “Parent” and “Female” audience values in order to be enrolled inthe “Mom” audience value. The “Parent” and “Female” audience values mayalso have their own related audience value-based parameters, which mayinfluence whether a user is enrolled into the “Mom” audience value.

Although only category-based, interaction-based, and related audiencevalue-based data inputs and weights are shown in the embodiment of FIG.8, it should be noted that many other data inputs and weights derivedfrom, for example, raw location events data, raw network events data,and/or data derived in any one or more of the previous process layers,as described herein, may be used to determine whether a user is a goodcandidate for an audience value.

In certain embodiments, as shown in FIG. 8, input data may havecorresponding weight values. In a particular embodiment, weight valuesmay signify the degree of correlation between data inputs and anaudience value such that a higher weight value may suggest a greaterlikelihood that an occurrence of a corresponding data input indicates agood candidate Internet-connectable device user for enrollment. Forexample, because an Internet-connectable device user that is associatedwith multiple “Gym” audience category occurrences may more likely belongto an audience segment represented by a “Health & Fitness Enthusiast”audience value than an Internet-connectable device user that isassociated with multiple “GNC” audience category occurrences, anaudience value rule created using the model of FIG. 8 may havecategory-based parameters that include a “Gym” audience category with ahigh corresponding weight and a “GNC” audience category with acomparatively low weight. In other words, an Internet-connectable deviceuser with an affinity to only gyms may be a better candidate for a“Health & Fitness Enthusiast” audience value than anInternet-connectable device user that has an affinity to only GNC.

In a particular embodiment, audience value rules may be inclusive and/orexclusive with respect to the enrollment of users into the audiencevalues. In this embodiment, if an audience value rule is inclusive,users that are associated with data that match, for example, any one ormore, or a subset, of the data inputs of the audience value rule may beconsidered for enrollment. If an audience value rule is exclusive, itmay be required that every data input is matched before a user isconsidered for enrollment.

In some embodiments, as shown in FIG. 8, data inputs may be used toderive a reference value, which may be calculated based on data inputsand weight parameters such as those described above. As specificexamples, an audience value rule may calculate a reference value byexamining the number of visits and the duration of those visits to aparticular website; relevant audience categories and audience categorytaxonomies, the frequency of occurrence of the relevant audiencecategories and taxonomies, and any corresponding score and/or confidencevalue associated with the relevant audience categories and taxonomies;campaign attributes; the type of user interaction with an advertisement(e.g., click); related audience values; locations visited by a user;and/or demographics.

Demographics data may comprise, for example, affluence, gender, familysize, and owner/renter data determined based on, for instance, routineplace resolution 431 and reverse geocoding 425 (e.g., home location). Ina particular embodiment, demographic information may be obtained withthe assistance of third-party resources that may provide census and realestate data based on, for example, a provided street address.

In certain embodiments, affluence may describe, for example, the derivedhousehold income (HHI) of a user of an Internet-connectable device. Insome embodiments, an Internet-connectable device user's affluence may bedetermined and/or adjusted based on, for example, where the user livesand/or works, which may be determined using, for example, routine placeresolution 431. For instance, if a street address of anInternet-connectable device user's home falls within a neighborhood forwhich census data is available via a third-party resource, a medianincome for the neighborhood may be determined based on the value ofhomes in the neighborhood. In other embodiments, affluence may insteador also be determined based on other census data such as, for example,median city income. In yet other embodiments, affluence may instead oralso be determined based on home value data provided by a real estateservice, and/or tax assessment data. In various embodiments, one or moreof the various available census and real estate data may be combined tocalculate a more accurate assessment of a user's income.

In some embodiments, the affluence of a user of an Internet-connectabledevice may instead or also be determined and/or adjusted based on wherethe user shops and/or products purchased by the user, as indicated by,for example, clicks and/or conversions. It should also be noted that, incertain embodiments, affluence (e.g., derived HHI) may be adjusted forother factors including, for example, economic factors (e.g.,inflation).

In some embodiments, gender of a user may be determined based on, forexample, places of interest identified by place resolution 421 and/orreal-world context data determined based on network events data. As aspecific example, a user that consistently visits a nail salon is mostlikely a female while a user that consistently visits a men's clothingstore is most likely a male. As another example, a user thatconsistently purchases makeup using an Internet-connectable device ismost likely a female while a user that consistently purchases men'sclothing using an Internet-connectable device is most likely a male.

In some embodiments, the size of an Internet-connectable device user'sfamily may also be obtained based on, for example, available censusand/or real estate data associated with the user's home. As anotherexample, census data may indicate, for instance, a percentage of homesin a neighborhood that have kids and/or the average household size in aneighborhood.

In certain embodiments, whether an Internet-connectable device user is arenter or an owner may also be determined based on, for example,available census and/or real estate data associated with a user's home.For example, property records may indicate that the user's home streetaddress corresponds to a multi-unit building. Property records may alsoindicate what percentage of units in the multi-unit building are rentalapartments and/or what percentage of units in the multi-unit buildingare owned.

In certain embodiments, audience value derivation 441 may track one ormore audience value reference values for each Internet-connectabledevice user. In some embodiments, reference values may continually beupdated based on new data. For example a particular audience value maybe augmented by occurrences of taxonomy IDs translated from the rawdata, brand information, explicit demographic data, the type ofinteraction with the ad server, etc. As a specific example, an audiencevalue rule may consider occurrences of audience categories associatedwith a particular application and a particular brand name. As new datafor a user of an Internet-connectable device is being processed by thesystem (e.g., in the previous process layers), new occurrences of theaudience categories may be used to augment the reference valuecorresponding to the audience value. If the user is not alreadyassociated with a reference value for the audience value, it may bederived.

In some embodiments, an audience value reference value corresponding toa particular Internet-connectable device may be compared to referencevalues for the same audience value that correspond to otherInternet-connectable devices to determine if the particularInternet-connectable device should be enrolled into the audience value.In some embodiments, such comparisons may be based on reference valuesthat are normalized to a standard 0-100 point scale. In theseembodiments, enrollment in an audience value may vary over time even ifthe reference value remains the same as the scale may periodicallychange based on new intelligence data determined for otherInternet-connectable devices. In certain embodiments, normalizedreference values may ensure that only meaningful segments of thepopulation are considered for enrollment in a audience value. Forexample, embodiments of the disclosed systems and techniques may onlyconsider the top 25% of a sample population of users that match a “FastFood Junkie” audience value.

Other processes that may impact audience value enrollment include, forexample, confidence value derivation 442, training data 443, andconfidence value depreciation 444.

In certain embodiments, a reference value may have a correspondingconfidence value derived during and/or after derivation of the referencevalue 442. In certain embodiments, confidence values may represent thelevel of confidence in, for example, a user match to, or enrollmentinto, an audience value. In some embodiments, confidence values may bedetermined using probability models, which may, in some cases, bemaintained and applied using a Bayes classifier.

In a particular embodiment, a probability model may hold mean andvariance data for each metric that contributes to an enrollmentdecision. In this embodiment, as new data (e.g., real-world contextdata) is received and examined, the Bayes classifier may constructGaussian probability distributions for each metric based on the data inthe probability model, and then compute the joint probability of anenrollment. Based on the result, the new data may be assigned aconfidence value indicating the confidence in the link between the newdata and the enrollment. Examples of metrics used to calculateconfidence values include duration (e.g., time spent at a location),number of impressions (e.g., the number of times an Internet-connectabledevice has visited the same or similar place, website, or application),distance and accuracy, place density (e.g., the number of nearbybusinesses), as well as other metrics.

In some embodiments, probability models are built on “training data”443, which may include data collected during prior observations andanalysis of data, as well as verified data. In some embodiments, datamay be verified based on knowledge of a user (e.g., user is known anddata can be personally verified), examination of the data (e.g.,administrator can look at data and decide if it conclusively supportsdetermined intelligence data), and user verification (e.g., user canverify audience values through end-user applications, such as check-insat specific locations, and/or with location sensors). In someembodiments, once data is verified, the metrics data used to calculate aconfidence value may be added to the training data. For example, ifdistance and accuracy are two metrics used to match a stop to a place,then when a stop-to-place link is verified the distance and accuracydata may be added to the training data.

In certain embodiments, depreciation may be applied to an audience value444, decreasing it according to, for example, the age of the value andan audience value's depreciation rate. In some embodiments, if aconfidence value for a particular user enrollment drops below a certainthreshold, the user may be de-enrolled. Two example techniques that maybe used include a linear decay rate that depends upon the amount of timethat has passed or an incremental decay rate that examines thehistorical increase in enrollments at particular dates/times anddecrements depreciation rates as those enrollments expire. Expiration ofenrollments may be based upon a time window that varies per audiencevalue. For example, the “Car buyer” audience value may have a muchshorter depreciation window than the “Mom” audience given the transitivenature of the car buyer shopping pattern.

Within the external interfaces process layer 450, the various layersdescribed above may be exposed to other systems. For example, audienceconfigurations, rules, and conditions may be exposed to administratorsallowing them to be changed and/or modified 451. As another example,audience values may be “published” 452 by, for instance, making thevalues available to ad fulfillment module 112 to be used to help drivethe ad-serving process. For example, ad fulfillment module 112 mayreceive an ad request from a user device. In response, ad fulfillmentlogic 230 may select an ad for the user device based on, for example,audience values associated with the user device and campaign data. As aspecific example, if the user device requesting an ad is enrolled in a“Gym” audience value, ad fulfillment logic 112 may serve a gym-relatedad to the user device.

In some embodiments, audience values, as well as otherInternet-connectable device data and/or user data, may be determinedand/or maintained using, for example, a graph data model. For instance,in certain embodiments, a graph data model may represent the varioustypes of data and relationships among the data, as described above, asdata elements, or “nodes,” connected by lines, or “edges.” In theseembodiments, each node may have metadata associated with the representeddata and each edge may indicate a type of relationship between nodes.The various types of Internet-connectable device data represented asnodes in a graph data model may include, for example:Internet-connectable devices, location events data, network events data,event groupings, real-world context data, and/or audience values.

In some embodiments, the first node added to a graph data model mayrepresent an Internet-connectable device. In certain embodiments, nodesrepresenting data associated with the Internet-connectable device (e.g.,data derived as described above) may subsequently be added sequentiallyin order of time and associated with the node representing theInternet-connectable device, and/or other nodes, by edges.

FIG. 9A shows a simplified graph data model 900 that includes nodesrepresenting various data associated with an Internet-connectable deviceas well as edges representing relationships among the nodes. Device nodeD1, which may be the first node added to the graph data model, mayrepresent a uniquely identified Internet-connectable device. Stop nodes51 and S2 may represent identified stops visited by theInternet-connectable device represented by device node D1 determinedusing, for example, pinpoint grouping 411. In some embodiments,identified stops may be added to the graph data model sequentially inorder of time. Thus, stop node S1 may represent the first stop at whichthe Internet-connectable device was located, and stop node S2 mayrepresent the last stop at which the Internet-connectable device waslocated. The edges leading from device node D1 to stop nodes S1 and S2may indicate a relationship between device node D1 and stop nodes S1 andS2. Specifically, each edge leading from device node D1 to a stop nodeindicates that the Internet-connectable device represented by devicenode D1 was located at the identified stop represented by each stopnode.

Place nodes P1 and P2 may represent places of interest determined using,for example, place resolution 421. As described above, place resolution421 may consider identified stops visited by an Internet-connectabledevice to determine a place of interest. Thus, as shown in FIG. 9A, theedges between stop node S1 and place node P1, stop node S1 and placenode P2, and stop node S2 and place node P2 indicate that the stopsrepresented by stop nodes S1 and S2 were resolved to a place representedby either place nodes P1 and/or P2.

Category nodes C1 and C2 may represent audience categories determinedbased on, for example, brands and/or subject matters associated with theplaces of interest represented by place nodes P1 and P2. For example, asshown, place node P1 was determined to correspond to the audiencecategory represented by category node C1, and place node P2 wasdetermined to correspond to the audience category represented bycategory node C2. In some embodiments, edges extending from the devicenode to the category nodes may be added to indicate audience categoryaffinities.

In certain embodiments, one or more nodes and/or edges may haveassociated metadata. For example, stop nodes may have metadata thatincludes latitude/longitude coordinates; place nodes may have metadatathat includes business names, street addresses, business categoriesand/or subcategories, business hours, and/or price structure; categorynodes may have metadata including audience category type identifiers(e.g., brand or subject matter), the number of occurrences of thecategory node, and/or identifiers for associated audience categorytaxonomies; and edges may have corresponding weights and/or referencevalues.

In a particular embodiment, data processing logic 222, 224, 226, and/or228, or other logic, may traverse a graph data model to determine othernodes and/or edges to be added to the graph data model based on, forexample, one or more rules. For example, data processing logic 222, 224,226, and/or 228 may examine metadata associated with nodes and/or edgesof a graph data model to determine other nodes and/or edges to be addedto the graph data model. An example of how data processing logic 222,224, 226, and/or 228 may traverse a graph data model to determine othernodes and/or edges to be added to the graph data model is furtherdescribed below with reference to FIG. 9B.

FIG. 9B illustrates the determination and addition of other nodes andedges to graph data model 900 beginning with the addition of stop nodeS3—the latest location visited by the Internet-connectable devicerepresented by device node D1. In these embodiments, data processinglogic 222, 224, 226, and/or 228 may examine stop node S3 and determinethat a relationship exists between stop node S3 and place node P2. Therelationship is represented in graph data model 900 as an edge betweenstop node S3 and place node P2. The additional visit to the place ofinterest represented by place node P2, which is associated with theaudience category represented by category node C2, may result in thesatisfaction of an audience category affinity rule that exists for theaudience category represented by category Node C2. As a result, dataprocessing logic 222, 224, 226, and/or 228 may determine that a user ofthe Internet-connectable device represented by device node D1 has anaffinity to the audience category represented by category node C2, whichmay be indicated in graph data model 900 by adding an edge betweendevice node D1 and category node C2. By determining that a user affinityto the audience category represented by category node C2 exists, it mayalso be determined that an audience value rule is satisfied, which maybe indicated by the addition of audience value node AV1, the edgebetween category node C2 and audience value node AV1, and the edgebetween device node D1 and audience value node AV1 to graph data model900.

In some embodiments, in addition to determining audience values,location data, network data, and/or data derived in any one or more ofthe above described process layers may be used by ad server 102 forproximity-based targeting of advertisements to Internet-connectabledevices using, for example, proximity-based targeting logic 218 and/orad fulfillment logic 230. In these embodiments, proximity-basedtargeting may be based on, for example, the last known location of anInternet-connectable device and/or the routine places or pathsassociated with the Internet-connectable device. Thus, proximity-basedtargeting may result in the serving of an advertisement that is specificto an immediate area in which an Internet-connectable device iscurrently located, and also advertisements that are specific tolocations in which an Internet-connectable device is frequently located.

In certain embodiments, proximity-based advertisement targeting allowsfor the designation of one or more private and/or public campaignlocations to be included in one or more advertisement campaigns.Proximity-based advertisement targeting rules may then consider, forexample, the proximity of Internet-connectable devices to the one ormore private and/or public campaign locations to determine whichadvertisements to serve the Internet-connectable devices, if any.

In certain embodiments, public campaign locations may be campaignlocations available to all entities that wish to create advertisementcampaigns. Public campaign locations may include, for example, shoppingareas, airports, national parks, neighborhoods, cities, states, and zipcodes. In comparison, private campaign locations may be campaignlocations provided by or determined for one entity that are notavailable for use in advertisement campaigns of other entities. Forexample, a restaurant chain may designate a private campaign locationfor each of its restaurants to be included in an advertisement campaignfor the restaurant chain.

In some embodiments, private and/or public campaign locations may haveassociated metadata, which may, for example, identify the private and/orpublic campaign locations by latitude/longitude coordinates. In somecases, such metadata may be provided to ad server 102 by, for example,an entity. In other cases, such metadata may be determined by ad server102. For example, an entity may provide a street address for eachprivate campaign location. Ad server 102 may then translate the streetaddresses into latitude/longitude coordinates, which may be used toderive real-world context data for each private campaign location using,for example, reverse geocoding.

In some embodiments, metadata for private and public campaign locationsmay also be used to group campaign locations based on one or morefactors. For example, metadata associated with private and/or publiccampaign locations may be used to group the private and/or publiccampaign locations by country, state, region, city, etc. In certainembodiments, metadata associated with private campaign locations mayalso be used to group the private campaign locations by entity-specificfactors. For example, a restaurant that serves a late-night menu atselect locations may group private campaign locations that offer alate-night menu.

In certain embodiments, proximity-based advertisement targeting rulesmay be created using metadata associated with private and/or publiccampaign locations. In these embodiments, proximity-based advertisementtargeting rules may define various conditions for determining when toserve an advertisement to an Internet-connectable device and whichadvertisement to serve to the Internet-connectable device. Conditionsmay include, for example, proximity of an Internet-connectable device toa campaign location determined based on, for example, location eventsdata associated with the Internet-connectable device, and/or time ofday. As a specific example, a restaurant chain with 5,000 restaurantsmay provide 5,000 private campaign locations to ad server 102 for use inmultiple advertisement campaigns. In this example, according to aproximity-based advertisement targeting rule created for the 5,000private campaign locations, an advertisement may be served to anyInternet-connectable devices within one mile of one of the privatecampaign locations. As another specific example, from the 5,000 privatecampaign locations, a group may be created that is comprised of only theprivate campaign locations located within a specific city. In thisspecific example, according to a proximity-based advertisement targetingrule created for the group, an advertisement may be served to anyInternet-connectable device located within the city or within a certainproximity to the city. As yet another specific example, from the 5,000private campaign locations, a group may be created that is comprised ofonly the private campaign locations with a late-night menu. In thisspecific example, according to a proximity-based advertisement targetingrule created for the group, a late-night specific advertisement may beserved to any Internet-connectable device within one mile of a privatecampaign location within the group after 11:00 p.m.

In some embodiments, the more conditions a proximity-based advertisementtargeting rule includes, the more precise proximity-based advertisementtargeting becomes. For example, in certain embodiments, the precision ofproximity-based advertisement targeting may be increased by creatingproximity-based advertisement targeting rules that consider audiencevalues assigned to a user of an Internet-connectable device. Forinstance, a proximity-based advertisement targeting rule created for arestaurant chain may only consider Internet-connectable devicesassociated with users enrolled in a “Restaurant Enthusiast” audiencevalue. In certain embodiments, by combining additional data such as, forexample, audience values, with proximity data, proximity-basedadvertisement targeting may result in even higher-value impressionsbeing presented to Internet-connectable device users.

In a particular embodiment, determining the proximity of anInternet-connectable device to a private or public campaign location maybe achieved by calculating the distance between the last known locationof the Internet-connectable device and the location of the private orpublic campaign location, based on metadata associated with the privateor public campaign location. In another embodiment, proximitycalculations may be performed using centroids or geographic polygonobjects defined for public and/or private campaign locations. In thisembodiment, instead of performing a distance calculation, the proximityof an Internet-connectable device to a private or public campaignlocation may be determined by determining whether the last knownlocation of the Internet-connectable device is within a geographicpolygon object.

In certain embodiments, routine places associated with anInternet-connectable device may also be used for proximity-basedtargeting. In these embodiments, advertisements may be targeted to auser of an Internet-connectable device based on the location of routineplaces associated with the Internet-connectable device.

In some embodiments, the location of an Internet-connectable device maybe predicted with varying degrees of certainty using predictiveanalysis, which may consider, for example, routine paths associated withthe Internet-connectable device. For example, based on a routine pathassociated with an Internet-connectable device, it may be determinedwith a degree of certainty that the Internet-connectable device iswithin a certain proximity of a private campaign location every weekdayat 8:30 a.m. In this example, if the degree of certainty is high enough,the Internet-connectable device's proximity to the private campaignlocation on a weekday at 8:30 a.m. may be presumed and no proximitycalculation need be performed.

In a particular embodiment, predictive analysis may be combined withreal-time location analytics to convey information other thanadvertisements to Internet-connectable device users. For example,historical collective route data associated with manyInternet-connectable devices may be examined to determine, for instance,expected or unusual traffic conditions. As a specific example, a largenumber of Internet-connectable devices may share a common path or pathsegment at a given point in time. Based on historical collective pathdata associated with the Internet-connectable devices, an average timeneeded to travel the path or path segment at the given point in time maybe determined. Thus, for example, the examination of collective pathdata may indicate that it takes thirty minutes to travel a specific pathsegment on Mondays between the hours of 7:00 a.m. and 10:00 a.m. If thedegree of certainty that an Internet-connectable device shares thespecific path segment on Mondays between the hours of 7:00 a.m. and10:00 a.m. is high enough, and/or it is determined that theInternet-connectable device is approaching the specific path segment,the Internet-connectable device may be notified of any unusual trafficconditions, which may be determined by examining collective path dataassociated with Internet-connectable devices that are currentlytraveling, or recently traveled, the specific route segment.

The foregoing description of the systems and techniques, along withassociated embodiments, has been presented for purposes of illustrationonly. It is not exhaustive and does not limit the techniques to theprecise form disclosed. Those skilled in the art will appreciate fromthe foregoing description that modifications and variations are possiblein light of the above teachings or may be acquired from practicing thetechniques. For example, the steps described need not be performed inthe same sequence discussed or with the same degree of separation.Likewise, various steps may be omitted, repeated, or combined, asnecessary, to achieve the same or similar objectives. Accordingly, thespirit and scope of the systems and techniques described herein shouldbe limited only by the following claims.

1. A computer system for performing proximity-based targeting ofadvertisements to Internet-connectable devices using data networks, thecomputer system comprising: a processor; and a memory coupled to theprocessor, the memory storing instructions to cause the processor toperform operations comprising: receiving from an Internet-connectabledevice at least one location event captured by the Internet-connectabledevice; determining a latest location of the Internet-connectable devicebased on the at least one location event; determining a proximity of theInternet-connectable device to a campaign location based on the latestlocation of the Internet-connectable device; and transmitting anadvertisement to the Internet-connectable device based on the proximityof the Internet-connectable device to the campaign location.
 2. Thecomputer system of claim 1, wherein the campaign location is a publiccampaign location.
 3. The computer system of claim 1, wherein thecampaign location is a private campaign location.
 4. The computer systemof claim 1, wherein metadata is associated with the campaign location.5. The computer system of claim 4, wherein the metadata comprisesreal-world context data.
 6. The computer system of claim 1, wherein thecampaign location is grouped with at least one other campaign location.7. The computer system of claim 6, wherein the campaign location and theat least one other campaign location are grouped based on where thecampaign location and the at least one other campaign locations arelocated.
 8. The computer system of claim 6, wherein the campaignlocation and the at least one other campaign location are grouped basedon an advertisement campaign.
 9. The computer system of claim 1, whereintransmitting the advertisement to the Internet-connectable device isalso based on an audience value associated with a user of theInternet-connectable device.
 10. The computer system of claim 1, whereintransmitting the advertisement to the Internet-connectable device isalso based on the time of day.
 11. The computer system of claim 1,wherein the campaign location is defined using a polygon object.
 12. Thecomputer system of claim 10, wherein determining the proximity is basedon whether the latest location is located within the polygon object. 13.A computer system for performing proximity-based targeting ofadvertisements to Internet-connectable devices using data networks, thecomputer system comprising: a processor; and a memory coupled to theprocessor, the memory storing instructions to cause the processor toperform operations comprising: receiving from an Internet-connectabledevice at least one location event captured by the Internet-connectabledevice; determining a routine place associated with theInternet-connectable device based on the at least one location event;and transmitting an advertisement to the Internet-connectable devicebased on a proximity of the routine place to a campaign location.
 14. Amethod for utilizing predicted locations of Internet-connectable devicesusing data networks, the method comprising: receiving from anInternet-connectable device at least one location event captured by theInternet-connectable device; determining a routine path associated withthe Internet-connectable device based on the at least one locationevent; predicting a future location of the Internet-connectable devicebased on the routine path associated with the Internet-connectabledevice; and transmitting data associated with the predicted futurelocation to the Internet-connectable device.
 15. The method of claim 14,wherein the data comprises an advertisement associated with a campaignlocation within a certain proximity to the predicted future location.16. The method of claim 14, wherein the data is transmitted to theInternet-connectable device within a time frame the Internet-connectabledevice is predicted to be at the predicted future location, wherein thetime frame is predicted based on metadata associated with the routinepath.
 17. The method of claim 14, wherein the data comprises real-timelocation analytics data associated with the predicted future location ofthe Internet-connectable device.
 18. The method of claim 17, wherein thereal-time location analytics data is current traffic conditions.
 19. Themethod of claim 17, wherein the real-time locations analytics data isbased on location events data associated with at least one otherInternet-connectable device
 20. The method of claim 17, wherein the datais transmitted to the Internet-connectable device when theInternet-connectable device is located within a set proximity to thepredicted future location.
 21. The method of claim 14, wherein theroutine path comprises a start point and an end point.
 22. A method forperforming proximity-based targeting of advertisements toInternet-connectable devices using data networks, the method comprising:receiving from an Internet-connectable device at least one locationevent captured by the Internet-connectable device; determining a latestlocation of the Internet-connectable device based on the at least onelocation event; determining a proximity of the Internet-connectabledevice to a campaign location based on the latest location of theInternet-connectable device; and transmitting an advertisement to theInternet-connectable device based on the proximity of theInternet-connectable device to the campaign location.
 23. The method ofclaim 22, wherein the campaign location is a public campaign location.24. The method of claim 22, wherein the campaign location is a privatecampaign location.
 25. The method of claim 22, wherein the campaignlocation is grouped with at least one other campaign location.
 26. Themethod of claim 25, wherein the campaign location and the at least oneother campaign location are grouped based on where the campaign locationand the at least one other campaign locations are located.
 27. Themethod of claim 26, wherein the campaign location and the at least oneother campaign location are grouped based on an advertisement campaign.28. The method of claim 22, wherein transmitting the advertisement tothe Internet-connectable device is also based on an audience valueassociated with a user of the Internet-connectable device.
 29. Themethod of claim 22, wherein transmitting the advertisement to theInternet-connectable device is also based on the time of day.
 30. Themethod of claim 22, wherein the campaign location is defined using apolygon object and determining the proximity is based on whether thelatest location is located within the polygon object.